package com.example.flashsales.mappers;


import com.example.flashsales.entity.dto.UserDto;
import com.example.flashsales.entity.pojo.User;
import com.example.flashsales.entity.pojo.UserCostRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface UserMapper {
    //TODO 用户登录，根据账号密码查询，返回用户的个人信息
    User login(@Param("account") String account, @Param("password") String password);

    //用户查看自己信息
    User viewUserMessage(@Param("userId") long userId);

    //根据原密码修改
    int modifyPasswordByPassword(@Param("userId") long userId, @Param("password") String newPassword);

    //直接修改
    int modifyPasswordByPhoneNumber(@Param("phone") String phone, @Param("password") String newPassword);

    //密码登录
    User loginByPassword(@Param("phone") String phone, @Param("password") String password);

    //根据电话号码获取信息
    User viewUserByPhone(@Param("phone") String phone);

    //增加用户
    int addUser(UserDto userDto);

    //修改余额
    int updateMoney(@Param("userId") long userId, @Param("money") double money);

    //查看用户的流水纪录
    List<UserCostRecord> viewCostRecord(@Param("id") long i, @Param("page") Integer page, @Param("num") Integer num);

    //查看数量
    Integer viewCostCount(@Param("id") long id);

    //按时间类型查看
    List<UserCostRecord> viewCostRecordByStateAndTime(@Param("id") long i, @Param("state") Integer state, @Param("page") int i1, @Param("num") Integer num, @Param("qDate") Date qDate, @Param("hDate") Date hDate);

    //按时间类型查看数量
    Integer viewCostCountByTime(@Param("id") long i,@Param("qDate") Date qDate,@Param("hDate") Date hDate,@Param("state") Integer state);
}
